A virtual device may be thought of as a device description that mimics a physical hardware device. Virtualization may be understood as an abstraction of resources, a technique that makes the physical characteristics of a computer system transparent to the user. For example, a single physical server may be configured to appear to the users as multiple servers, each running on a completely dedicated hardware. Such perceived multiple servers may be termed logical servers. On the other hand, virtualization techniques may make appear multiple data storage resources (e.g., disks in a disk array) as a single logical volume or multiple logical volumes, the multiple logical volumes not necessarily corresponding to the hardware boundaries (disks).
Some existing systems utilize a virtual machine monitor in order to achieve virtualization. A virtual machine monitor, often abbreviated as VMM, permits a user to create logical servers. A request from a network client to a target logical server typically includes a network designation of an associated physical server or a switch. When the request is delivered to the physical server, the VMM that runs on the physical server may process the request in order to determine the target logical server and to forward the request to the target logical server. When requests are sent to different services running on a server (e.g., to different logical servers created by a VMM) via a single physical I/O device, the processing at the VMM that is necessary to route the requests to the appropriate destinations may become an undesirable bottleneck.
A physical I/O device, e.g., a network adaptor, is typically configured such that there is a direct mapping of the resources to the memory addresses. A request directed to an I/O device, such as a request from a host to a network adaptor, includes a hard-coded address of a particular resource associated with the adaptor. When a request is received at the adaptor, the adaptor decodes the address and the request is processed utilizing the resource associated with the hard-coded address.